package com.timeset.activity.mapper;

import com.timeset.activity.entity.*;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.validation.constraints.Max;
import java.util.List;

/**
 * @ClassName PhotoMapper
 * @Description
 * @Author lz
 * @Date 2020-04-23 18:07
 */
public interface ActivityMapper {

    //通过userId,aId查找申请表是否有该条申请：为用户设置 是否可申请参加活动
    public int isHaveApply(int aId,int userId);
    //查询申请状态0是未申请或者申请失败，1是正在申请，2申请成功
    public int applyStatus(int aId,int userId);

    //获取活动申请参加的信息
    public ActivityApplyData activityApplyData(int aId);
    //设置活动申请参加的信息,当提交申请之前，即进入申请页面之前将活动正在申请人数加一，将空余位减一
    public int setApplyData(int aId,int applyingNum,int freeNum);
    //当进入页面返回后或者取消申请时：将正在申请人数减一，空余位加一
    public int setCancelApplyData(int aId,int applyingNum,int freeNum);
    //准备申请参加活动
    public int toApplyToJoin(int aId,int userId,int applyResult);

    //申请参加活动
    public int applyToJoin(int aId,int userId,String answer,String currentTime);


    //提交申请之后，成功申请参加活动，将正在申请人数减一，成功申请人数加一
    public int setApply(int aId,int applyingNum,int joinNum);

    //取消申请参加活动
    public int cancelApplyToJoin(int aId,int userId);

    //查找所有活动
    public List<Activities> findAllActivities(int pageIndex,int schoolId);

    //根据活动id查找照片
    public List<String> pathList(int activityId);
    //根据组织id查找发布的活动
    public List<Activities> findActivitiesByOrganizationId(int id);

    //根据条件检索相关活动
    public  List<Activities> findActivitiesByLabel(String keyword);

    //根据组织名搜索组织
    public List<Orgnaization> findOrganization(String name);
    //根据组织级别搜索活动
    public  List<Activities> findActivitiesByLevel(String level);

    //根据userId,activities添加活动 values(#{origanization_id,up_time,view_num,content,label,title})
   // public int addActivities(int origanization_id,String up_time,int view_num,String content,String label,String title);

    public int addActivities(Activities activities);
    //根据 活动id删除活动
    public int deleteActivity(int id);

    //设置活动参加人数
    public int joinNum(int aId,int total,int freeNum);
    //删除活动参加人数
    public int deleteJoinNum(int aId);

    //上传设置的问题表单
    public int upQuestionList(int aId,String questionList);
    //删除问题表单
    public int deleteQuestionList(int aId);
    //根据活动id获取问题
    public String findQuestionByActivityId(int aId);

    /*
    * 历史活动
    *
    * */
    //根据组织id查找活动信息，根据每一个活动id查找活动申请信息
    public List<Activity> findHistoryActivityByOrgId(int oId);

    //根据活动id修改活动状态：结束活动
    public int endActivityById(int aId);
    //根据活动id查找活动
    public OnlyActivity findActivityById(int aId);
    //根据活动id删除活动
    public int deleteActivityById(int aId);

    /*查看申请表*/
    //根据活动id查找申请数据
    public List<ApplyForm> findApplyInformationByAId(int aId);
    //修改活动状态
    public int updateApplyStatus(int applyId,int status);
    //根据id查看是否还有该条数据
    public int isHaveApplyById(int applyId);
    //根据id查看申请数据状态值
    public int findApplyStatusById(int applyId);




}
